package CollectionTest;

import java.util.ArrayList;
import java.util.Collection;

/*
集合中的contains和remove方法探究
 */
public class CollectionTest2 {
    public static void main(String[] args){
        Collection c = new ArrayList();
        c.add("java");
        c.add("C");
        c.add(123);
        User u = new User("王五");
        c.add(u);
        String s = new String("java");
        //contains方法判断集合中是否含有该元素
        System.out.println(c.contains(s)); //true 集合中存储的是引用，contains底层调用了equals方法，比较的是对象的内容，所以结果为true

        User u1 = new User("王五");
        System.out.println(c.contains(u1)); //false User类中并未重写equals方法，所以比较的是对象的地址，所以为false

        //调用remove方法删除集合元素
        System.out.println(c.remove(s)); //true "java"元素被删除，remove()同样底层调用了equals方法，当集合中元素内容与要删除的元素内容相同，该元素将会被删除

        //结论:放入集合中的元素，需要重写equals方法
    }
}
class User{
    String name;
    public User(String name){
        this.name = name;
    }
}